﻿// -----------------------------------------------------------------------
// <copyright file="ICourseDetailsService.cs" company="AGR">
// TODO: Update copyright text.
// </copyright>
// -----------------------------------------------------------------------

namespace AGR.Services.Course
{
    using System;
    using System.Collections.Generic;
    using System.Linq.Expressions;
    using AGR.Model;

    /// <summary>
    /// TODO: Update summary.
    /// </summary>
    public interface ICourseDetailsService
    {
        FactCourseSubjectTrainer GetCourseSubject(string courseCode, string subjectCode);
        FactCourseSubjectTrainer GetCourseSubject(Expression<Func<FactCourseSubjectTrainer, bool>> predicate);

        IList<FactCourseSubjectTrainer> GetAllCourseSubjects(string courseCode);
        IList<FactCourseSubjectTrainer> GetAllCourseSubjects(Expression<Func<FactCourseSubjectTrainer, bool>> predicate);

        ActionResult AddCourseSubject(FactCourseSubjectTrainer entity);
        ActionResult AddCourseSubject(string courseCode, string subjectCode, string employeeCode, string userCreated);
        ActionResult UpdateCourseSubject(FactCourseSubjectTrainer entity);
        ActionResult UpdateCourseSubject(string courseCode, string subjectCode, string employeeCode, string userCreated);
        ActionResult DeleteCourseSubject(string courseCode, string subjectCode);
        ActionResult DeleteCourseSubject(Expression<Func<FactCourseSubjectTrainer, bool>> predicate);
    }
}
